package com.beta.service;

import com.baomidou.framework.service.ISuperService;
import com.beta.em.order.TransactionType;
import com.beta.entity.Orders;
import com.beta.entity.OrderSettleQueues;

import java.util.List;

/**
 *
 * OrderSettleQueues 表数据服务层接口
 *
 */
public interface IOrderSettleQueuesService extends ISuperService<OrderSettleQueues> {

    /**
     * 获得订单的结算队列数据
     * @param orderId
     * @param txnType
     * @return
     */
    List<OrderSettleQueues> getOrderSettleQueues(Integer orderId, TransactionType txnType);

    /**
     * 创建结算队列
     * @param orders
     */
    void createSettleQueues(Orders orders);

    /**
     * 删除点单的结算队列
     * @param orderId
     */
    void deleteSettleQueue(Integer orderId);

    /**
     * 执行结算订单
     * @param orderId
     */
    void executeSettleOrder(Integer orderId);

    /**
     * 结算所有队列中的订单（避免结算失败导致）
     */
    void executeSettleAll();

    /**
     * 存在处理中的订单
     * @return
     */
    boolean hasProcessingOrder();

}